using Nop.Core.Configuration;

namespace Spotshub.Plugin.Payments.GlobalPayments
{
    public class GlobalPaymentsSettings : ISettings
    {
        #region Debug Settings

        public string TestIframeUrl { get; set; }
        public bool EnableLog { get; set; }
        public bool EnableDebug { get; set; }
        public string SampleResponse { get; set; }


        public bool EnableSandbox { get; set; }
        public string SandboxDirectServiceUrl { get; set; }
        public string SandboxFormUrl { get; set; }
        public string SandboxAPIToken { get; set; }
        public string SandboxProfileId { get; set; }

        #endregion

        #region Logistics Only
        public string LogisticsCssUrl { get; set; }
        public string LogisticsCallbackUrl { get; set; }
        #endregion

        #region Commerce Only
        public string CommerceCssUrl { get; set; }
        public string CommerceCallbackUrl { get; set; }
        #endregion

        #region App Only
        public string AppCssUrl { get; set; }
        public string AppCallbackUrl { get; set; }
        #endregion

        /// <summary>
        /// The global transport secure form direct service endpoint URL
        /// </summary>
        public string DirectServiceUrl { get; set; }

        /// <summary>
        /// The iFrame URL for requesting the secure form
        /// </summary>
        public string FormUrl { get; set; }

        public string UIDEndpoint { get; set; }

        public string QueryEndpoint { get; set; }

        public string AuthorizeEndpoint { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether to "additional fee" is specified as percentage. true - percentage, false - fixed value.
        /// </summary>
        public bool AdditionalFeePercentage { get; set; }
        /// <summary>
        /// Additional fee
        /// </summary>
        public decimal AdditionalFee { get; set; }

        public string AllowedTypes { get; set; }

        public string CallbackUrl { get; set; }

        public string CssUrl { get; set; }
        /// <summary>
        /// RefundURL
        /// </summary>
        public string RefundUrl { get; set; }
    }
}
